package it.ap.sa.core.logback.config;

import it.ap.sa.core.utils.costants.AppenderTypeCostants;

/**
 * @author Alessandro Paolillo
 */
public class LogbackDTO {
	
   /******************** Logger property **/
	
	/**
	 * Nome del logger da usare per scrivere con logback
	 */
	private String nomeLogger;
	/**
	 * Stabilisce il livello di log per logback. I valori possibili sono: INFO, DEBUG, WARN, ERROR. 
	 */
	private String level;
	/**
	 * Determina se il log prodotto dal logger deve essere scritto anche dal root logger(se definito).
	 */
	private Boolean additivity;
	
  /********************** Appender property **/
	
	/**
	 * Tipologia di appender 
	 */
	private AppenderTypeCostants tipo;
	/**
	 * Nome dell'appender
	 */
	private String nomeAppender;
	/**
	 * Path della cartella dove archiviare i file di log prodotti con logback.
	 */
	private String locateFile;
	/**
	 * Nome del file di log non comprensivo di estensione. Es: smartmob, ecc..
	 */
	private String nomeFile;
	/**
	 * La proprietà fileNamePattern è obbligatoria perchè il periodo di rollover viene dedotto dal suo valore. 
	 * Il suo valore dovrebbe consistere nel specificare  il formato di "%d". 
	 * Lo specificatore "%d" può contenere un modello di data e ora, come specificato dalla classe java.text.SimpleDateFormat. 
	 * ES: %d{yyyy-MM-dd} , rollover giornaliero
	 */
	private String filenamePattern;
	/**
	 * Se il file di log cresce più grande della dimensione specificata, viene fatto scattare il rollover del file attivo esistente.
	 * L'opzione può essere specificata in byte, kilobyte, megabyte o gigabyte scritto come: KB, MB e GB.
	 * Ad esempio, 5000000, 5000 KB, 5 MB e 2 GB sono tutti valori validi.
	 */
	private String maxFileSize;
	/**
	 * Layout del file di log.
	 * Es: %X{codeApp} | %X{sessionId} | %X{username} | %d{yyyy-MM-dd HH:mm:ss} | %-5level | %C | %msg%n
	 */
	private String pattern;
	
	
	
	/**
	 * @return the nomeLogger
	 */
	public String getNomeLogger() {
		return nomeLogger;
	}
	/**
	 * @param nomeLogger the nomeLogger to set
	 */
	public void setNomeLogger(String nomeLogger) {
		this.nomeLogger = nomeLogger;
	}
	/**
	 * @return the level
	 */
	public String getLevel() {
		return level;
	}
	/**
	 * @param level the level to set
	 */
	public void setLevel(String level) {
		this.level = level;
	}
	/**
	 * @return the additivity
	 */
	public Boolean getAdditivity() {
		return additivity;
	}
	/**
	 * @param additivity the additivity to set
	 */
	public void setAdditivity(Boolean additivity) {
		this.additivity = additivity;
	}
	/**
	 * @return the tipo
	 */
	public AppenderTypeCostants getTipo() {
		return tipo;
	}
	/**
	 * @param tipo the tipo to set
	 */
	public void setTipo(AppenderTypeCostants tipo) {
		this.tipo = tipo;
	}
	/**
	 * @return the nomeAppender
	 */
	public String getNomeAppender() {
		return nomeAppender;
	}
	/**
	 * @param nomeAppender the nomeAppender to set
	 */
	public void setNomeAppender(String nomeAppender) {
		this.nomeAppender = nomeAppender;
	}
	/**
	 * @return the locateFile
	 */
	public String getLocateFile() {
		return locateFile;
	}
	/**
	 * @param locateFile the locateFile to set
	 */
	public void setLocateFile(String locateFile) {
		this.locateFile = locateFile;
	}
	/**
	 * @return the nomeFile
	 */
	public String getNomeFile() {
		return nomeFile;
	}
	/**
	 * @param nomeFile the nomeFile to set
	 */
	public void setNomeFile(String nomeFile) {
		this.nomeFile = nomeFile;
	}
	/**
	 * @return the filenamePattern
	 */
	public String getFilenamePattern() {
		return filenamePattern;
	}
	/**
	 * @param filenamePattern the filenamePattern to set
	 */
	public void setFilenamePattern(String filenamePattern) {
		this.filenamePattern = filenamePattern;
	}
	/**
	 * @return the maxFileSize
	 */
	public String getMaxFileSize() {
		return maxFileSize;
	}
	/**
	 * @param maxFileSize the maxFileSize to set
	 */
	public void setMaxFileSize(String maxFileSize) {
		this.maxFileSize = maxFileSize;
	}
	/**
	 * @return the pattern
	 */
	public String getPattern() {
		return pattern;
	}
	/**
	 * @param pattern the pattern to set
	 */
	public void setPattern(String pattern) {
		this.pattern = pattern;
	}
}
